/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package services;

import entities.questionnaire.Questionnaire;
import entities.utilisateur.RepondantAuthentifie;
import javax.ejb.Local;

/**
 *
 * @author loic.vaugeois
 */
@Local
public interface SrvGestionQuestionnaireLocal {

    /**
     * Diffuse une invitation par mail à tous les utilisateurs concernés par le questionnaire
     * @param questionnaire
     */
    public void diffuser(Questionnaire questionnaire);

    /**
     * Envoi une invitation à un RepondantAuthentifie user pour un Questionnaire q
     * @param questionnaire
     * @param user
     * @param typeMessage type (type_diffusion,type_relance,type_remerciement)
     */
    public void diffuser(Questionnaire questionnaire, RepondantAuthentifie user, String typeMessage);

    /**
     * Relancer les cibles qui n'ont pas encore repondu au questionnaire donné.
     * @param questionnaire
     */
    public void relancerDiffusion(Questionnaire questionnaire);

    /**
     * Envoi un mail de remerciement à un user donné pour un questionnaire donné.
     * @param questionnaire
     * @param user
     */
    public void remercier(Questionnaire questionnaire, RepondantAuthentifie user);

    /**
     * Cette methode permet de controler la validite de la clé présente dans l'url d'une invitation.
     * @param questionnaire
     * @param user
     * @param key
     * @return true si la clé est valide, false sinon.
     */
    public boolean controleCle(long questionnaire, long user, String key);
}
